//package com.ailink.redis.lock;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.data.redis.core.script.DefaultRedisScript;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * Created by Administrator on 2018/9/29
// */
//@Service
//public class TestLock {
//
//    @Autowired
//    private StringRedisTemplate redisTemplate;
//
//    @Autowired
//    private RedisTemplate userRedisTemplate;
//
//    public boolean testLua() {
//        String scriptText = "redis.call('set', KEYS[1], ARGV[1])\n" +
//                "local value = redis.call('get', KEYS[1])\n" +
//                "local del = redis.call('del', 'abc')\n" +
//                "local result = {}\n" +
//                "result[1] = value\n" +
//                "result[2] = del\n" +
//                "return result\n";
//        DefaultRedisScript<List> redisScript = new DefaultRedisScript<>();
//        redisScript.setResultType(List.class);
//        redisScript.setScriptText(scriptText);
//
//        List<String> keyList = new ArrayList();
//        keyList.add("count");
//
//        Map<String,Object> argvMap = new HashMap<String,Object>();
//        argvMap.put("expire",10000);
//        argvMap.put("times",10);
//
//        List execute = (List) userRedisTemplate.execute(redisScript, keyList, argvMap);
//        return false;
//    }
//
//    public boolean testLua2() {
//        String scriptText = "redis.call('set', KEYS[1], ARGV[1])\n" +
//                "local value = redis.call('get', KEYS[1])\n" +
//                "local del = redis.call('del', KEYS[1])\n" +
//                "local result = {}\n" +
//                "result[1] = value\n" +
//                "result[2] = del\n" +
//                "return result\n";
//        DefaultRedisScript<List> redisScript = new DefaultRedisScript<>();
//        redisScript.setResultType(List.class);
//        redisScript.setScriptText(scriptText);
//
//        List<String> keyList = new ArrayList();
//        keyList.add("count");
//
//        Map<String,Object> argvMap = new HashMap<String,Object>();
//        argvMap.put("expire",10000);
//        argvMap.put("times",10);
//
//        List execute = redisTemplate.execute(redisScript, keyList, "123");
//        return false;
//    }
//
//}
